import { mapActions, mapGetters } from 'vuex'
import ENUM from '../config/enum'

const _globalData = {}
const plugin = {
  install (vue) {
    if (!vue.globalData) {
      vue.globalData = _globalData
    }
    vue.mixin({
      data () {
        return {
          globalData: {
            access_token: '',
            tempAddressSelect: {},
            userInfo: {},
            timeoutTimer: null
          }
        }
      },
      created: function () {
        this.globalData = _globalData
      },
      computed: {
        ...mapGetters(['goodsNum', 'flag']),
        // 是否有货
        isHasGoodsText () {
          return function (item) {
            return parseFloat(item.stock_state) === -1
            // return false
          }
        },

        // 判断是否属于三峡
        isSanXia () {
          let href = window.location.href
          // return (/ctg.ulinkmall.com/).test(href)
          return ((/ctg.ulinkmall.com/).test(href) || (/abc.uleemall.com/).test(href) || (/localhost:8080/).test(href) || (/devm.ulinkmall.com/).test(href) || (/eshop1.ulinkmall.com/).test(href))
        },

        // 判断是否属于西部智谷
        isXBZG () {
          let href = window.location.href
          return ((/xbzg.ulinkmall.com/).test(href))
        },

        // 判断是否属于重庆电信
        isCQDX () {
          // let CQDX = parseFloat(this.globalData.userInfo.flag) // 1 为重庆电信  0 其他
          // return !!CQDX
          // return ((/cqdx.ulinkmall.com/).test(href))
          // return this.flag
          let href = window.location.href
          return ((/cqdx.ulinkmall.com/).test(href))
        },

        // 判断是否属于重庆电信饭卡
        isCQDXFK () {
          let href = window.location.href
          return ((/cqdxfk.ulinkmall.com/).test(href))
        },

        // 判断是否属于M
        isM () {
          let href = window.location.href
          return ((/m.ulinkmall.com/).test(href))
        },

        // 原价文字显示
        textOldPrice () {
          return function (id) {
            if (this.isCQDX) { // 如果是重庆电信全部显示市场价
              return '市场价'
            } else {
              if (this.isJinDong(id)) {
                return '京东价'
              } else if (this.isSuNing(id)) {
                return '苏宁价'
              } else {
                return '市场价'
              }
            }
          }
        },

        // 订单号显示
        textOrderNum () {
          return function (id) {
            if (this.isJinDong(id)) {
              return '京东订单号'
            } else if (this.isSuNing(id)) {
              return '苏宁订单号'
            } else {
              return '订单号'
            }
          }
        },

        // 现价文字显示
        textNewPrice () {
          if (this.isSanXia) {
            return 'e购价'
          } else {
            return '内购价'
          }
        },

        // 是否显示折扣
        isDiscount () {
          return function (item) {
            return parseFloat(item.discount_rate) !== 0
          }
        },

        // 是否是京东商品
        isJinDong () {
          return function (id) {
            return id == ENUM.PRODUCT_SOURCE_TYPE['京东'] || id == ENUM.PRODUCT_SOURCE_TYPE['京东图书']
          }
        },

        // 是否是严选商品
        isYX () {
          return function (id) {
            return id == ENUM.PRODUCT_SOURCE_TYPE['严选']
          }
        },

        // 是否是自营商品
        isZY () {
          return function (id) {
            return parseFloat(id) > 0
          }
        },

        // 是否是优选商品
        isYouXuan () {
          return function (id) {
            return id == ENUM.PRODUCT_SOURCE_TYPE['优选']
          }
        },

        // 是否是苏宁商品
        isSuNing () {
          return function (id) {
            return id == ENUM.PRODUCT_SOURCE_TYPE['苏宁']
          }
        },

        // 编号显示
        textNo () {
          return (id) => {
            if (this.isJinDong(id)) {
              return '京东编号'
            }
            if (this.isYouXuan(id)) {
              return '优选编号'
            }
            if (this.isZY(id)) {
              return '自营编号'
            }
            if (this.isYX(id)) {
              return '严选编号'
            }
            if (this.isYX(id)) {
              return '严选编号'
            }
            if (this.isSuNing(id)) {
              return '苏宁编号'
            }
          }
        },

        // 折扣率颜色判断
        discountClass () {
          return (rate) => {
            let _rate = parseFloat(rate)
            if (_rate <= 0) {
              return false
            }
            if (_rate <= 50 && _rate > 0) {
              return 'discount-0-50'
            }
            if (_rate <= 70 && _rate > 50) {
              return 'discount-50-70'
            }
            if (_rate > 70) {
              return 'discount-70-100'
            }
          }
        }

      },
      methods: {
        // 获取购物车数量
        ...mapActions(['GET_GOODS_NUM']),

        // ios手机键盘无法归为问题
        inputBlur () {
          let u = navigator.userAgent
          let isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)
          if (isIOS) {
            this.timeoutTimer = setTimeout(() => {
              const scrollHeight = document.documentElement.scrollTop || document.body.scrollTop || 0
              window.scrollTo(0, Math.max(scrollHeight - 1, 0))
              // window.scrollTo(0, 0)
              // window.scrollTo({ top: 0, left: 0, behavior: 'smooth' })
            }, 100)
          }
        },

        inputFocus () {
          let u = navigator.userAgent
          let isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)
          if (isIOS) {
            clearTimeout(this.timeoutTimer)
          }
        }
      },

      beforeDestroy () {
        clearTimeout(this.timeoutTimer)
      }
    })
  }

}

export default plugin
export const install = plugin.install
export const globalData = _globalData
